home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / lstgrid / griddd.frm < prev    next >
Text File  |  1995-05-07  |  3KB  |  114 lines

  1. VERSION 2.00
  2. Begin Form Form1 
  3.    Caption         =   "Drag Drop on the Grid"
  4.    ClientHeight    =   2850
  5.    ClientLeft      =   1575
  6.    ClientTop       =   1590
  7.    ClientWidth     =   7470
  8.    Height          =   3255
  9.    Left            =   1515
  10.    LinkTopic       =   "Form1"
  11.    ScaleHeight     =   2850
  12.    ScaleWidth      =   7470
  13.    Top             =   1245
  14.    Width           =   7590
  15.    Begin ListBox List1 
  16.       Height          =   2565
  17.       Left            =   0
  18.       TabIndex        =   1
  19.       Top             =   0
  20.       Width           =   2415
  21.    End
  22.    Begin PictureBox Grid1 
  23.       Height          =   2655
  24.       Left            =   2400
  25.       ScaleHeight     =   2625
  26.       ScaleWidth      =   5025
  27.       TabIndex        =   0
  28.       Top             =   0
  29.       Width           =   5055
  30.    End
  31. End
  32.  
  33. 'Dragging is a flag used for each control to determine
  34. 'if we are dragging something.
  35.  
  36. Dim dragging As Integer
  37.  
  38. Sub Form_Load ()
  39. For X = 1 To 10
  40.    list1.AddItem X
  41. Next X
  42. End Sub
  43.  
  44. Sub Grid1_DragDrop (Source As Control, X As Single, Y As Single)
  45. 'Calculate the row to drop in.  Add each row until we pass Y
  46. 'All this is calculated in twips.
  47.  
  48. currentrow = grid1.TopRow
  49. twipcount = grid1.RowHeight(currentrow)
  50. While (twipcount <= Y)
  51.    currentrow = currentrow + 1
  52.    twipcount = twipcount + grid1.RowHeight(currentrow)
  53.    
  54.    'If there are gridlines, we have to add those in too
  55.    If grid1.GridLines Then
  56.       twipcount = twipcount + grid1.GridLineWidth * screen.TwipsPerPixelY
  57.    End If
  58. Wend
  59.  
  60. 'Calculate the column to drop in.  Add each row until we pass X
  61. 'All this is calculated in twips.
  62. currentcol = grid1.LeftCol
  63. twipcount = grid1.ColWidth(currentcol)
  64. While (twipcount <= X)
  65.    currentcol = currentcol + 1
  66.    twipcount = twipcount + grid1.ColWidth(currentcol)
  67.  
  68.    'If there are gridlines, we have to add those in too
  69.    If grid1.GridLines Then
  70.       twipcount = twipcount + grid1.GridLineWidth * screen.TwipsPerPixelX
  71.    End If
  72. Wend
  73.  
  74. 'Assign value
  75. grid1.Col = currentcol - 1
  76. grid1.Row = currentrow - 1
  77. grid1.Text = list1.Text
  78.  
  79. 'End drag mode
  80. list1.Drag 2
  81. dragging = False
  82. End Sub
  83.  
  84. Sub List1_DragDrop (Source As Control, X As Single, Y As Single)
  85. 'Ooops.  Dropped on ourselves.  Just cancel the drag mode.
  86.  
  87. list1.Drag 0
  88. dragging = False
  89. End Sub
  90.  
  91. Sub List1_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
  92. 'If the mouse goes down, set the dragging flag in case this is for a drag
  93. dragging = True
  94. End Sub
  95.  
  96. Sub List1_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)
  97. 'If the dragging flag was set, then we will enable the drag
  98. 'MouseDown has to set the flag first
  99. If dragging Then
  100.    dragging = False  'Cancel the flag
  101.    list1.Drag 1      'Start the drag mode
  102. Else
  103.    list1.Drag 0      'Cancel if flag was not set
  104. End If
  105. End Sub
  106.  
  107. Sub List1_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)
  108. 'Mouse released on text box so cancel the dragging mode
  109.  
  110. list1.Drag 0
  111. dragging = False
  112. End Sub
  113.  
  114.